#pragma once
#include "DataStructure/Common/DataStructureNamespace.h"
#include "DataStructure/Common/Integer.h"

SG_DATASTRUCTURE_FEM_NAMESPACE_OPEN
/** \enum PropertyTypes
 *
 * 属性类型枚举
 */
enum PropertyTypes : SG::DataStructure::Common::I8
{
    PROTYPE_Unknow = -1,  ///< 未知类型
    PROTYPE_PBAR   = 1,   ///< 梁单元属性：定义用于梁单元（如 CBEAM 或 CBAR）的截面属性
    PROTYPE_PBARL  = 2,   ///< 梁单元属性（通用）：通过参数化的方式定义复杂截面梁单元的属性
    PROTYPE_PBUSH  = 3,   ///< 通用弹簧阻尼器属性：定义用于 PBUSH 单元（通用弹簧/阻尼器单元）的刚度、阻尼和摩擦等属性
    PROTYPE_PCOMP  = 4,   ///< 复合材料层合板属性：定义用于 PSHELL 单元的复合材料层合板属性，包括各层的材料、厚度、角度等。
    PROTYPE_PELAS  = 5,   ///< 弹簧单元属性：定义用于 CELAS 单元的弹簧刚度属性。
    PROTYPE_PMASS  = 6,   ///<  集中质量属性：定义用于集中质量单元（如 CONM2）的质量属性。
    PROTYPE_PROD   = 7,   ///< 拉杆单元属性：定义用于拉杆单元（如 CROD）的截面面积、材料等属性。
    PROTYPE_PSHEAR = 8,   ///< 剪切单元属性：定义用于剪切单元（如 CSHEAR）的厚度和材料等属性。
    PROTYPE_PSHELL = 9,   ///< 薄壳单元属性：定义用于薄壳单元（如 CQUAD4、CTRIA3）的材料、厚度、层合属性等。
    PROTYPE_PSOLID = 10,  ///< 实体单元属性：定义用于实体单元（如 CHEXA、CPENTA）的材料属性。
    PROTYPE_PBEAM  = 11,  ///< 梁单元属性：定义用于梁单元（如 CBEAM 或 CBAR）的截面属性
    PROTYPE_PBEAML = 12,  ///< 梁单元属性（通用）：通过参数化的方式定义复杂截面梁单元的属性
    PROTYPE_PCONV  = 13,  ///< 自由对流边界条件属性
    PROTYPE_PHBDY  = 14,  ///< CHBDYP表项引用的属性表项，用于给出边界条件曲面元的辅助几何信息
    PROTYPE_PVISC,        ///<
    PROTYPE_PFASTT,       ///<
    PROTYPE_PFAST,        ///<
    PROTYPE_PELAST,       ///<
    PROTYPE_PDAMP,        ///<
    PROTYPE_PCOMPFQ,      ///<
    PROTYPE_PWELD,        ///<
    PROTYPE_PDISTB,       ///<
    PROTYPE_PDISTBM,      ///<
    PROTYPE_PBRSECT,      ///<
};

SG_DATASTRUCTURE_FEM_NAMESPACE_CLOSE